package com.galaxy.device.domain.convert;

import com.galaxy.device.domain.DeviceMachineType;
import com.galaxy.device.domain.bo.DeviceMachineTypeBo;
import com.galaxy.device.domain.vo.DeviceMachineTypeVo;
import org.mapstruct.Mapper;
import org.mapstruct.Qualifier;
import org.mapstruct.factory.Mappers;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.List;

/**
 * 机器类型对象转换器
 */
@Mapper
public interface DeviceMachineTypeConvert {

    DeviceMachineTypeConvert INSTANCE = Mappers.getMapper(DeviceMachineTypeConvert.class);

    /**
     * 实体转BO
     */
    DeviceMachineTypeBo convert(DeviceMachineType bean);

    /**
     * 实体列表转BO列表
     */
    List<DeviceMachineTypeBo> convertList(List<DeviceMachineType> list);

    /**
     * 实体转VO
     */
    DeviceMachineTypeVo convertVo(DeviceMachineType bean);

    /**
     * 实体列表转VO列表
     */
    List<DeviceMachineTypeVo> convertVoList(List<DeviceMachineType> list);

    /**
     * BO转实体
     */
    DeviceMachineType convert(DeviceMachineTypeBo bo);

    /**
     * BO列表转实体列表
     */
    List<DeviceMachineType> convertListBo(List<DeviceMachineTypeBo> list);

    DeviceMachineTypeBo convert(DeviceMachineTypeVo vo);
}
